Skip to content

perf(app): optimize network requests, bound caches, and trim memos - #180

Merged
wgordon17 merged 4 commits into
gordon-code:mainfrom
wgordon17:feat/site-modernization-pr4
Nov 2, 2026
Merged

wgordon17 merged 4 commits into
gordon-code:mainfrom
wgordon17:feat/site-modernization-pr4

Conversation

@wgordon17

@wgordon17 wgordon17 commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Use conditional cachedRequest calls with projected payloads for hot-poll workflow run checks (run:<owner>/<repo>:<id>, deleting cache entries on terminal completed or waiting status; empirically verified live that GET /repos/{owner}/{repo}/actions/runs/{run_id} returns 304 Not Modified with X-RateLimit-Remaining unchanged while in-flight and returns 200 OK with a new ETag on state transition), skip trackApiCall on 304 while still syncing resetAt, skip status-badge re-renders on 304 unless recovering from consecutive failures, deduplicate initial Jira load fetches within 20s while preserving error retries, manual refreshes, and in-flight scope changes, and request right-sized (40px/56px) lazy-decoded GitHub avatars
  • Project cached workflow-run list pages under runs2: keys to strip unused repository/actor payload fields, refresh fetchedAt hourly on 304 for unbounded entries, and schedule hourly stale-entry eviction plus IDBKeyRange.bound prefix eviction when repositories are deselected
  • Clean up detached DOM references in TrackedTab on row disposal, cap notification seen-ID sets at 20,000 entries with two-pass LRU eviction, and split customTabData so exclusiveOwnership does not recompute on tab switches

Use conditional cachedRequest calls in fetchWorkflowRunById and delete
cache entries on terminal status, skip status-badge re-renders on 304
unless recovering from consecutive failures, deduplicate mount and
post-refresh Jira fetches within 20s, and request right-sized lazy
GitHub avatars.
Project cached workflow run list entries under runs2: (old fat runs:
entries age out via the 24h eviction), schedule hourly stale-entry
eviction and repo-deselection prefix eviction in App, clean up
TrackedTab itemRefs on unmount, cap notification seen-ID sets at 20,000
entries with LRU eviction, and split customTabData so exclusiveOwnership
does not recompute on built-in tab switches.
Use IDBKeyRange.bound in evictKeysWithPrefix, project single-run cache
entries via projectSingleRun, delete run: entries on completed and
waiting status with best-effort error handling, evict run: prefixes on
repo deselection, refresh fetchedAt hourly on 304 for unbounded entries,
and reset Jira dedupe on errors/manual refresh while rerunning on
in-flight scope changes.
Skip trackApiCall when info.status === 304 while still syncing resetAt
so Settings API Usage matches actual GitHub rate-limit consumption,
clear jiraLoading if a pending scope-change rerun finds jiraClient() is
null, and update stale Events-poll ETag claims in docs/USER_GUIDE.md.
@wgordon17
wgordon17 force-pushed the feat/site-modernization-pr4 branch from 555ebdc to 421b3af Compare November 2, 2026 18:05
@wgordon17
wgordon17 marked this pull request as ready for review November 2, 2026 21:36
@wgordon17
wgordon17 requested a review from a team November 2, 2026 21:36
@wgordon17
wgordon17 merged commit 1731b40 into gordon-code:main Nov 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant